1
การออกแบบความเข้ากันได้ข้ามกลุ่มอุปกรณ์ที่หลากหลาย
AI022Lesson 2
00:00

หัวใจของ อินเทอร์เฟซการประมวลผลแบบไม่เป็นเอกลักษณ์เพื่อความเข้ากันได้ (HIP) อยู่ที่ความสามารถในการสร้างภาพรวมเครื่องมือเฉพาะฮาร์ดแวร์ให้กลายเป็นอินเทอร์เฟซรันไทม์ C++ ที่เป็นหนึ่งเดียว โดยใช้แนวทาง แนวคิดแหล่งเดียวนักพัฒนาสามารถจัดการโค้ดเดียวกันที่เชื่อมโยงแบบไดนามิกกับเบ็กเอนด์ของ NVIDIA หรือ AMD ได้

1. การกำหนดฮาร์ดแวร์ตามเส้นทาง

สถาปัตยกรรมพึ่งพาสัญลักษณ์สภาพแวดล้อมเพื่อเป็นจุดอ้างอิงสำหรับระบบการสร้าง ซึ่งสัญลักษณ์เหล่านี้บอกให้กับ hipcc ตัวแคปซูลคอมไพเลอร์ว่าควรไปหาไลบรารีอุปกรณ์และไฟล์หัวเรื่องที่จำเป็นที่ไหน

  • CUDA_PATH: จุดอ้างอิงหลักสำหรับชุดอุปกรณ์ NVIDIA (งานที่เกี่ยวข้องกับ NVCC/PTX)
  • HIP_PATH: จุดอ้างอิงหลักสำหรับชุดอุปกรณ์ AMD ROCm (งานที่เกี่ยวข้องกับ Clang/LLVM)
รหัสต้นฉบับ HIPชุดอุปกรณ์ NVIDIA$CUDA_PATHชุดอุปกรณ์ AMD ROCm$HIP_PATHกลุ่มอุปกรณ์ที่หลากหลาย

2. การสร้างภาพรวมชั้นการประมวลผล

ความเข้ากันได้เกิดจากการแยกชั้นแอปพลิเคชันออกจากโครงสร้างไมโครอาร์กิเทคเจอร์ ตรรกะจะถูกแก้ไขในช่วงเวลาการสร้างโดยใช้ hipccซึ่งทำให้การดูแลรักษาโค้ดในระดับ $O(1)$ นำไปสู่ความเข้ากันได้กับฮาร์ดแวร์ในระดับ $O(N)$

main.py
TERMINALbash — 80x24
> Ready. Click "Run" to execute.
>